package com.cap.bts.crmdp.dealer.meal.dao;

import java.util.List;

import com.cap.bts.crmdp.dealer.meal.domain.PackageEligibilityModel;
import com.cap.bts.crmdp.dealer.meal.dto.PackageEligibilityDto;
import com.cap.bts.framework.common.dao.IBaseDao;
import com.cap.bts.framework.common.exception.AppException;

public interface IPackageEligibilityDao extends IBaseDao<PackageEligibilityModel, Long> {
    /**
     * 查询套餐的适用范围信息
     * @param packageEligibilityDto
     * @return
     * @throws AppException
     */
    public List<PackageEligibilityModel> getPackageEligibilityList(PackageEligibilityDto packageEligibilityDto)
                                                                                                               throws AppException;

    /**
     * 新增套餐的适用范围信息
     * @param packageEligibilityDto
     * @return
     * @throws AppException
     */
    public PackageEligibilityModel insertPackageEligibilityInfo(PackageEligibilityModel packageEligibilityModel)
                                                                                                                throws AppException;

    /**
     * 删除套餐的适用范围信息
     * @param packageEligibilityDto
     * @return
     * @throws AppException
     */
    public boolean removePackageEligibilityInfo(PackageEligibilityDto packageEligibilityDto)
                                                                                            throws AppException;

    /**
     * 根据套餐ID,Dealer_property,Property_value查询套餐的适用范围
     * @param packageEligibilityDto
     * @return
     * @throws AppException
     */
    public PackageEligibilityModel getPackageEligibilityInfoByPackageDefId(PackageEligibilityDto packageEligibilityDto)
                                                                                                       throws AppException;
    
    /**
     * @param packageDefId
     * @return
     * @throws AppException
     */
    public List<PackageEligibilityModel> getPackageEligibilityByPackageDefId(Long packageDefId) throws AppException;
}
